/* PesquisarMaquinas.java
*  Criado em 17/12/2005
*
*/
package br.com.werp.regras.suporte.visao.decorador;

import br.com.werp.regras.geral.helpers.ProcessadorHelper;
import br.com.werp.regras.geral.util.Html;
import br.com.werp.regras.geral.vos.suporte.HdVO;
import br.com.werp.regras.geral.vos.tabelas.Maquina;
import br.com.werp.regras.geral.vos.tabelas.Processador;
import br.com.werp.regras.suporte.integracao.FabricaDAO;
import br.com.werp.regras.suporte.integracao.MaquinaDAO;

import org.displaytag.decorator.TableDecorator;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;


/**
 * @author Rafael Carneiro - <a href = "mailto:rafael@portaljava.com">
 * rafael@portaljava.com</a>
 */
public class PesquisarMaquinas extends TableDecorator {
    public String getMaqn_nome() throws Exception {
        Maquina maquina = (Maquina) getCurrentRowObject();

        Map map = new HashMap();
        map.put("select_action", "");
        map.put("maqn_id", new Integer(maquina.getMaqn_id()));

        return Html.href("../Maquinas/MaquinasDetalheForm.do", map) +
        maquina.getMaqn_nome() + "</a>";
    }

    public String getMaqn_memoria() throws Exception {
        Maquina maquina = (Maquina) getCurrentRowObject();

        String tipo = null;

        if ((maquina.getMaqn_memoria_tipo() != null) &&
                maquina.getMaqn_memoria_tipo().equals("D")) {
            tipo = "DDR";
        }

        if ((maquina.getMaqn_memoria_tipo() != null) &&
                maquina.getMaqn_memoria_tipo().equals("I")) {
            tipo = "DIMM";
        }

        if (maquina.getMaqn_memoria_tipo() == null) {
            tipo = "-";
        }

        return Html.center(maquina.getMaqn_memoria() + "<br>" + "Tipo: " +
            tipo);
    }

    public String getProcessador() throws Exception {
        Maquina maquina = (Maquina) getCurrentRowObject();
        List processadores = (List) ProcessadorHelper.obterProcessador(String.valueOf(
                    maquina.getMaqn_processador()));
        List retorno = new ArrayList();

        for (Iterator iter = processadores.iterator(); iter.hasNext();) {
            Processador processador = (Processador) iter.next();
            retorno.add(processador.getProc_nome());
        }

        return Html.itemExpandivel("Processador", retorno);
    }

    public String getHd() throws Exception {
        Maquina maquina = (Maquina) getCurrentRowObject();
        MaquinaDAO maquinaDAO = FabricaDAO.getMaquinaDAO();
        List hds = maquinaDAO.obterHdMaquina(maquina.getMaqn_id());
        List retorno = new ArrayList();

        for (Iterator iter = hds.iterator(); iter.hasNext();) {
            HdVO hdVO = (HdVO) iter.next();
            retorno.add("Marca: " + hdVO.getHadk_marca() + " <br> " +
                "Modelo: " + hdVO.getHadk_modelo());
        }

        return Html.itemExpandivel("Hard-Disk ", retorno);
    }
}
